문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 RAM/주소할당 문제 (문단 편집) ==== 4 GiB 문제의 해결책 ==== [[32비트]] 시대에도 4 GiB 문제를 예견하지 못한 건 아니라서 일찌감치 1996년에 [[인텔 펜티엄 프로|펜티엄 프로]]에서 PAE(Physical Address Extension: 물리 주소 확장)라는 기술이 일종의 과도기적 대안으로 도입되었고, 이를 이용하면 주소에 36비트를 이용하여 총 64 GiB까지 이용할 수 있었다. 하지만 이것은 전체 메모리를 64 GiB까지 꽂아서 쓸 수 있다는 것이지 프로그램 내부에서 이용하는 가상 주소는 이전과 마찬가지로 32비트이므로 애플리케이션에서 할당할 수 있는 메모리 크기에는 변함이 없었다. 단, 여러 개의 물리 페이지를 할당해 놓고, 필요한 부분만 가상 주소에 매핑해서 사용하는 구조 특성상 최대 2 GiB까지만 사용할 수 있다는 것은 아니었다. 그러나 한 번에 매핑해서 사용할 수 있는 크기는 2 GiB로 제한되므로 매핑된 페이지를 교체하려면 작업이 번거로웠다. 여기까지 고려하고 만든다면 2 GiB의 한계를 극복하고 사용할 수 있었지만, 많은 수의 응용 프로그램들이 이를 고려하지 않고 만들어졌던 데다가 결정적으로 64비트가 도입되면서 더 이상 이런 복잡한 체계를 붙들고 있을 필요가 없어졌다. PAE가 아니더라도 32비트 시스템에서 4 GiB 공간을 넘어서 사용하는 또 다른 방법은 페이지 크기를 4 MiB로 하는 것이다. 이 방법은 PDE에 물리 주소 4비트를 추가로 지정하여 PAE처럼 물리 메모리를 64 GiB까지 사용할 수 있었다(단, 하드웨어가 지원한다면). 하지만 관리가 불편해서인지 현재는 거의 사장된 거나 다름없는 기법이다. 현재 대부분의 32비트 운영 체제들은 4 KiB 페이지를 사용하고 있다. 결국 근본적인 해결책은 '''[[64비트]]를 도입해''' 주소 자체를 늘리는 것으로, CPU 아키텍처와 운영 체제를 전부 64비트로 변경하면 된다. 4 GiB 문제가 점차 현실적으로 다가옴에 따라 [[PowerPC]]나 [[MIPS]] 같은 다른 아키텍처에서는 일찌감치 64비트로의 이전을 실시하고 있었으나 x86은 호환성의 문제로 이전이 늦어졌다가 [[AMD]]의 [[AMD64]] 아키텍처가 나오면서 64비트 시대가 열렸다. 인텔 역시 64비트 아키텍처인 [[인텔 아이태니엄 시리즈|IA-64]]를 일찌감치 만들어뒀지만 이쪽은 기존의 x86 호환성이 없는 것이나 마찬가지였다. [[AMD64]] 아키텍처에서는 메모리 주소를 최대 64비트까지 지정할 수 있도록 했지만, 64비트 주소의 용량인 16 EiB(18,446,744,073,709,551,615 바이트) 메모리를 단시일 내에는 사용할 수 없다고 판단해 최초에는 40비트까지만 사용할 수 있게 했다가 2000년대 후반에 48비트로 늘렸다. 이런 제약을 둔 이유는 여러 가지가 있지만 그 중 하나는 페이징 때문으로, 주소 지정을 하는 비트 수만큼 필요한 페이지 테이블의 용량이 함께 늘어나기 때문이다.[* 그 외에는 어차피 거의 쓰지도 않을 주소 때문에 CPU 어드레스 핀을 늘려서 회로를 더 복잡하게 만들고 트랜지스터만 낭비된다는 이유 등이 있다. 뭐든 결론은 안 쓸 주소 때문에 여러 가지가 낭비돼서이다. 사실 원래 옛날부터 CPU의 레지스터 크기와 주소지정 크기가 일치하지 않는 경우는 많았다. 애초에 8비트 CPU 시절에는 지정할 수 있는 주소 영역이 너무 작아서(256바이트) 거의 모든 8비트 CPU는 16비트 주소로 지정할 수 있었으며, 이것도 부족해서 뱅크 스위치 컨트롤러를 쓰곤 했다. 16비트 CPU에서도 당장 [[인텔 8086]]만 봐도 20비트 주소를 지정할 수 있었다. 물론 보다시피 보통은 레지스터 크기보다 주소 지정 영역이 더 큰 경우였지 더 작은 경우는 없었기는 하다.] 이론적으로 페이지 테이블의 구조 상 최대 52비트까지 확장할 수 있으며 이때는 메모리를 최대 4 PiB(4096 TiB)까지 사용할 수 있지만, 48비트 주소만 사용해도 메모리를 최대 256 TiB까지 사용할 수 있다. 아직까지 CPU 하나당 최대 지원 메모리가 수백 GiB ~ 2 TiB 정도라 당분간은 충분할 듯하다. 실제로 52비트 주소체계는 AMD64 아키텍처가 나온지 20년이 지난 2020년대 초반에 가서야 겨우 등장하기 시작했다. AMD64 아키텍처는 이 주소 공간을 절반으로 나누어서 아래쪽 절반은 사용자 영역, 위쪽 절반은 커널 및 하드웨어 영역으로 사용한다. 그래서 64비트 [[Linux|리눅스]]는 사용자 공간으로 아래쪽 절반인 최대 8 EiB까지만 쓸 수 있다. 어쨌거나 4 GiB를 넘는 메모리를 사용하려면 하드웨어와 운영 체제가 모두 64비트를 지원해야 한다. 컴퓨터 부품은 싫어도 CPU와 아키텍처를 맞춰야 하므로 하드웨어 쪽은 일찌감치 64비트로 갈아탔다. [[AMD]]는 2003년([[AMD 옵테론 시리즈|애슬론 64/옵테론]]), [[인텔]]은 2004년(펜티엄4 프레스캇 - 초기 모델은 제외)부터 64비트 지원 프로세서가 나오기 시작했다. 사실 소프트웨어 쪽이 대응이 늦어 이런 장벽이 만들어졌다. 특히 클라이언트용 Windows는 2010년대 초반까지만 해도 32비트가 여전히 많이 쓰였다. Microsoft Windows의 클라이언트 버전은 AMD64의 등장에 발맞추어 [[Windows XP]] x64 에디션을 내놓았지만 인지도는 매우 낮았고, 호환성 문제 등으로 사용하기 불편한 점[* [[Windows Server 2003]] 기반이라 호환되지 않는 프로그램이 많았으며, 영문판과 일본어판만 발매돼서 한글은 언어팩으로 해결해야 했다.]이 있었다. [[Windows Vista]]부터 64비트 버전을 동봉해 놓았으나, DSP 버전은 비트별로 나누어져 있다(다만 라이선스는 서로 호환된다). 응용 프로그램의 메모리 요구량은 갈수록 높아지기만 하니 32비트 운영 체제는 몇 년 내로 자취를 감추게 될 것이다. 실제로 서버용 [[Microsoft Windows|Windows]]는 [[Windows Server 2008|Server 2008]] 이후 즉, 좀 더 정확하게는 [[Windows Server 2008 R2|Server 2008 R2]] 부터 32비트 버전을 일절 출시하지 않고 있다. [[레드햇 리눅스|Red Hat]]의 RHEL도 Version 7부터는 64비트 버전만 나온다. [[Windows 10]]은 [[32비트]] 버전과 [[64비트]] 버전이 같이 출시되었는데, 2020년 4월에 배포된 20H1 버전부터 OEM 용으로 32비트 제품군의 출하가 중단된다. 단, 일반 사용자용의 판매 및 지원은 2025년 10월까지 계속된다. [[https://www.zdnet.com/article/microsoft-takes-a-step-toward-phasing-out-32-bit-pc-support-for-windows-10/|#]] 2021년 6월 24일 [[Windows 11]]이 공개되었고, 최소 요구 사양이 물리적인 듀얼코어 이상의 64비트 프로세서로 제한되는 데다, 32비트 버전의 미출시가 확정됨에 따라 Windows 10의 사후 지원이 종료되어 완전히 단종되고 Windows 11이 주요 운영 체제로 거듭나게 되는 2025년 후반에는 64비트로의 이주가 완전하게 끝나게 될 것이다. CPU가 [[64비트]] 아키텍처라고 하더라도 칩셋 등 다른 하드웨어 때문에 제한이 걸리기도 한다. 예를 들어 인텔 945 및 965 칩셋 시리즈는 칩셋이 4 GiB의 메모리 주소만 처리할 수 있기 때문에 64비트라고 하더라도 4 GiB의 메모리를 모두 사용하지 못한다. 물론 이 하드웨어가 나왔을 당시의 스펙에 맞추어서 세팅이 된 것이라 이런 경우는 해당 하드웨어가 현역일 당시에는 문제가 되지 않았던 것이 대부분. 이 외에도 32비트 시스템과 호환성을 위해서 하드웨어 영역은 지금도 4 GiB 아래에 위치하는 경우가 대부분이다. 물론 운영 체제가 똑똑하다면 하드웨어용으로 예약된 메모리 주소를 우회해서 실제 장착된 RAM에 매핑해 준다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기